package com.example.springbooteasycode.utils.tablepdf.bad;

import org.apache.poi.xwpf.usermodel.*;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblWidth;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STJcTable;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STTblWidth;

import java.io.FileOutputStream;
import java.io.IOException;
import java.math.BigInteger;

/**
 * 生成Word文档
 * @author: boykchen
 */
public class SurveyResultWordSimpleGeneratorV1 {

    public static void main(String[] args) throws IOException {
        XWPFDocument document = new XWPFDocument();

        // 设置问卷基础信息表格
        questionnaireInfoTableToDocument(document);


        // 输出到文件
        try (FileOutputStream out = new FileOutputStream("/Users/boykchen/Desktop/survey_results-SimpleStyle.docx")) {
            document.write(out);
        }

    }

    private static void questionnaireInfoTableToDocument(XWPFDocument document) {
        // 实现问卷基础信息表格的创建
        XWPFTable table = document.createTable(4, 2);

        // 设置名称
        table.getRow(0).getCell(0).setText("名称");
        table.getRow(0).getCell(1).setText("物业服务满意度2024年度调查");

        // 设置时间
        table.getRow(1).getCell(0).setText("时间");
        table.getRow(1).getCell(1).setText("2024-10-12 16:41:06至 202410-14 09:12:14");

        // 设置发布者
        table.getRow(2).getCell(0).setText("发布者");
        table.getRow(2).getCell(1).setText("新物业");

        // 设置收集数
        table.getRow(3).getCell(0).setText("收集数");
        table.getRow(3).getCell(1).setText("4份");

        // 设置表格样式
        setTableStyles(table);
    }

        /**
     * 设置表格样式
     *
     * @param table 表格对象
     */
    private static void setTableStyles(XWPFTable table) {
        // 设置表格宽度为固定值
        CTTblWidth tblWidth = table.getCTTbl().getTblPr().getTblW();
        if (tblWidth == null) {
            tblWidth = table.getCTTbl().getTblPr().addNewTblW();
        }
        tblWidth.setType(STTblWidth.DXA);
        tblWidth.setW(BigInteger.valueOf(0)); // 自适应宽度

        // 设置表格居中对齐
        table.getCTTbl().getTblPr().addNewJc().setVal(STJcTable.CENTER);

        // 设置列宽
        table.getCTTbl().getTblGrid().addNewGridCol().setW(BigInteger.valueOf(720));
        table.getCTTbl().getTblGrid().addNewGridCol().setW(BigInteger.valueOf(1800));

    }
}
